package com.yummy.convention.collection;

public class CollectionProcessUtil {
	/**
	 * 集合分片处理同步执行
	 * @Author zhanghao
	 * 2019年3月5日下午3:44:47
	 * @param batchSize 分片尺寸
	 * @param index 从index开始处理
	 * @param itemSize 要处理数据的总数
	 * @param invoker 要执行的操作
	 */
	public static void processInSlice(int batchSize ,int index ,int itemSize,ProcessInSliceInvoker invoker) {
		while(index<itemSize) {
			int fromIndex = index;
			int toIndex = (index+batchSize)>itemSize?itemSize:index+batchSize;
			invoker.doProcess(fromIndex,toIndex);
			index = toIndex;
		}
	}

	public interface ProcessInSliceInvoker{
		public void doProcess(int fromIndex,int toIndex);
	}
}
